#!/bin/bash

# 定义tmux会话名称
TMUX_SESSION="hot_rolling_tmux"

# 定义监听的端口（根据你的实际情况修改）
LISTEN_PORT=5002  # 替换为你的应用程序监听的端口

# 启动函数
start() {
    # 检查是否已经有同名的tmux会话
    if tmux has-session -t $TMUX_SESSION 2>/dev/null; then
        echo "Tmux会话 '$TMUX_SESSION' 已经存在。"
    else
        # 创建新的tmux会话并运行命令
        tmux new-session -d -s $TMUX_SESSION
        tmux send-keys -t $TMUX_SESSION "cd ~/hot_rolling/src" C-m
        tmux send-keys -t $TMUX_SESSION "conda activate hot_rolling" C-m
        tmux send-keys -t $TMUX_SESSION "python ~/hot_rolling/src/main.py" C-m
        echo "Tmux会话 '$TMUX_SESSION' 已启动，并运行 main.py。"
    fi
}

# 停止函数
stop() {
    # 检查tmux会话是否存在
    if tmux has-session -t $TMUX_SESSION 2>/dev/null; then
        # 查找并终止监听指定端口的进程
        echo "正在终止监听端口 $LISTEN_PORT 的进程..."
        PID=$(lsof -ti :$LISTEN_PORT)
        if [ -n "$PID" ]; then
            kill -9 $PID
            echo "已终止进程 $PID。"
        else
            echo "没有找到监听端口 $LISTEN_PORT 的进程。"
        fi

        # 关闭tmux会话
        tmux kill-session -t $TMUX_SESSION
        echo "Tmux会话 '$TMUX_SESSION' 已停止。"
    else
        echo "Tmux会话 '$TMUX_SESSION' 不存在。"
    fi
}

# 重启函数
restart() {
    stop
    start
}

# 根据传入的参数执行相应的操作
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo "使用方法: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit 0